#ifndef TestQueryProcessorWrapper_h
#define TestQueryProcessorWrapper_h

#include <cppunit/extensions/HelperMacros.h>

class QueryProcessorWrapperTest : public CPPUNIT_NS::TestFixture {
	private:
		CPPUNIT_TEST_SUITE( QueryProcessorWrapperTest );
		CPPUNIT_TEST( testConstructor );
		// TODO problem: to use a pkb stub's functions properly, a PKB pointer must be used in ResultGraphTable. 
		//				However, when a PKB pointer is used in ResultGraphTable, unknown errors pop up.
		/*CPPUNIT_TEST( testEvaluateQueryRunnable );
		CPPUNIT_TEST( testEvaluateInvalidQuery );
		CPPUNIT_TEST( testEvaluateFollowsRelationship );
		CPPUNIT_TEST( testEvaluateFollowsStarRelationship );
		CPPUNIT_TEST( testEvaluateParentRelationship );
		CPPUNIT_TEST( testEvaluateParentStarRelationship );*/
		CPPUNIT_TEST_SUITE_END();

	public:
		void setUp();
		void tearDown();
		// Tests the constructor
		void testConstructor();
		// Tests the evaluation of the query, just to make sure that it can run
		// without error (whether it returns the correct result or not is not tested)
		void testEvaluateQueryRunnable();
		void testEvaluateInvalidQuery();
		void testEvaluateFollowsRelationship();
		void testEvaluateFollowsStarRelationship();
		void testEvaluateParentRelationship();
		void testEvaluateParentStarRelationship();
};
#endif